import numpy as np

arr = np.array([1, 2, 3], dtype=complex)
print(arr)

arr = np.empty(shape=[3, 2], dtype=int)
print(arr)

# 默认为浮点数
arr = np.zeros(5)
print(arr)

# 设置类型为整数
arr = np.zeros((5,), dtype=int)
print(arr)

# 自定义类型
arr = np.zeros((2, 2), dtype=[('x', 'i4'), ('y', 'i4')])
print(arr)

arr = np.ones([2, 2], dtype=int)
print(arr)

arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
zeros_arr = np.zeros_like(arr)
print(zeros_arr)

ones_arr = np.ones_like(arr)
print(ones_arr)

# 将列表转换为 ndarray:
x = [1, 2, 3]
arr = np.asarray(x)
print(arr)

x = (1, 2, 3)
arr = np.asarray(x)
print(arr)
print(len(arr))

s = b'Hello World'
arr = np.frombuffer(s, dtype='S1')
print(arr)

# 使用 range 函数创建列表对象
li = range(5)
it = iter(li)
# 使用迭代器创建 ndarray
arr = np.fromiter(it, dtype=int)
print(arr)

arr = np.arange(5)
print(arr)

arr = np.arange(10, 20, 2)
print(arr)

# numpy.linspace 函数用于创建一个一维数组，数组是一个等差数列构成的。格式如下：
# np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)
arr = np.linspace(1, 10, 4)
print(arr)
# [ 1.  4.  7. 10.]


# numpy.logspace 函数用于创建一个于等比数列。格式如下：
# np.logspace(start, stop, num=50, endpoint=True, base=10.0, dtype=None)
arr = np.logspace(0, 6, num=7, base=2, dtype=int)
print(arr)
# [ 1  2  4  8 16 32 64]

